/* 
 * @(#)DepartamentoBean.java 
 *  
 * Esta clase presenta la informacion de un departamento.  
 * 
 * @version 1.0
 * @date 01/11/12 
 * @author Oscar Castillo 
 *  
 */
package muhnes.sizoo.controlador;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import muhnes.sizoo.dal.DepartamentoDao;
import muhnes.sizoo.dal.FabricaDAO;
import muhnes.sizoo.modelo.Departamento;
import muhnes.sizoo.util.Transaccion;

/**
 * Clase donde se definen los metodos que controlan la vista de departamentos
 * @author Ricardo Orellana
 */
@ManagedBean(name = "departamentoBean")
@ViewScoped
public class DepartamentoBean extends CRUDBean< Departamento, DepartamentoDao >  
    implements Serializable {
    
    /**
     * Crea una nueva instancia de departamento
     */
    public DepartamentoBean() {
        super( Departamento.class );
        vistaProtegida = "departamento";
    }

    /**
     * Metodo que instancia un nuevo DepartamentoDao
     * 
     */
    @Override
    protected DepartamentoDao getDAO () {
        return FabricaDAO.crearDepartamentoDao();
    }

    /**
     * 
     * @param transaccion indica que transaccion se debera realizar 
     * @return objeto de tipo boolean que indica que tipo de transaccion se realizara
     */
    @Override
    protected boolean debeValidar (Transaccion transaccion) {
        boolean validacion = false;
        
        switch( transaccion ) {
            case INSERCION:
            case ACTUALIZACION:
            case ELIMINACION:
                validacion = true;
        }
        
        return validacion;
    }
}